const request = require('../../../utils/request.js');

Page({
  data: {
    userInfo: {
      isLoggedIn: false,
      username: '未登录',
      avatar: 'null'
    },
    activeTab: '',
    defaultAvatar: '/src/assets/head.jpg'
  },
  onLoad() {
    this.setData({
      'userInfo.avatar': this.data.defaultAvatar
    });
    this.getUserInfo();
  },

  // 获取用户信息
  getUserInfo() {
    request({
      url: '/user/info',
      method: 'POST'
    })
    .then(res => {
      console.log('获取用户信息成功:', res);
      this.setData({
        userInfo: {
          isLoggedIn: true,
          username: res.username ,
          avatar: '/src/assets/head.jpg'
        }
      });
    })
    .catch(error => {
      console.error('获取用户信息失败:', error);
      this.setData({
        userInfo: {
          isLoggedIn: false,
          username: '未登录',
          avatar: this.data.defaultAvatar
        }
      });
    });
  },
  setTab: function (e) {
    const tabId = e.currentTarget.dataset.id;  // 获取点击的tab ID
    this.setData({
      activeTab: tabId,  // 设置当前选中的tab
    });

    if (tabId === 'favorites') {
      wx.showToast({
        title: '迭代中，敬请期待',
        icon: 'none',  // 可以选择success, loading, none等
        duration: 2000,   // 弹窗显示的时间
      });
    }
    if (tabId === 'notifications') {
      const storageInfo = wx.getStorageInfoSync();
    
      // 获取需要保留的键名列表
      const keysToKeep = ['token', 'wx_name'];
  
      // 遍历所有缓存键，删除不在保留列表中的键
      storageInfo.keys.forEach(key => {
          if (!keysToKeep.includes(key)) {
              wx.removeStorageSync(key);  // 删除缓存
          }
      });
  
        wx.showToast({
            title: '清除缓存成功', // 提示内容
            icon: 'success', // 显示成功图标
            duration: 500, // 提示框显示时长，单位是毫秒
        });
      }
    this.setData({
      activeTab: '',
  });
  },
  onWechatLogin: function() {
    // 在小程序中获取微信登录凭证，并发起接口请求
    wx.login({
      success: (res) => {
        if (res.code) {
          // 获取登录凭证（code）
          const code = res.code;
  
          // 构建请求数据
          const requestData = {
            code: code,  // 微信登录凭证
          };
  
          // 调用后端接口，将 code 传递给后端
          request({
            url: '/user/wx/login',  // 后端接口
            method: 'POST',
            data: requestData
          })
          .then((response) => {
            // 处理后端响应数据

            console.log(response)
            console.log(response.token)
            if (response.token) {
              console.log('登录成功，token:', response.token);
              // 存储 token
              wx.setStorageSync('token', response.token);
              wx.setStorageSync('wx_name', response.wx_name);
              this.setData({
                userInfo: {
                  isLoggedIn: true,
                  username: response.wx_name ,
                  avatar: '/src/assets/head.jpg'
                }
              });
              wx.showToast({
                title: '授权微信登录成功',
                icon: 'none',
              });
            } else {
              // 如果没有返回 token 或接口失败
              console.log('接口调用失败', '未知错误');
            }
          })
          .catch((error) => {
            // 请求失败
            console.log('请求失败', error);
            wx.showToast({
              title: '请求失败，请稍后再试',
              icon: 'none',
            });
          });
        } else {
          // 登录失败，无法获取 code
          wx.showToast({
            title: '微信登录失败，请重试',
            icon: 'none',
          });
        }
      },
      fail: (error) => {
        // 登录失败处理
        console.log('微信登录失败', error);
        wx.showToast({
          title: '微信登录失败，请重试',
          icon: 'none',
        });
      }
    });
  },
  
  onShareAppMessage() {
    return {
      title: '给孩子一个未来的代号，让名字成为他一生的力量源泉',
      path: '/pages/wx/HomePage/index'
    };
  },

  // 分享到朋友圈
  onShareTimeline() {
    return {
      title: '给孩子一个未来的代号，让名字成为他一生的力量源泉'
    };
  },  
  // 图片加载失败时的处理
  handleImageError() {
    console.log('头像加载失败，使用默认头像');
    this.setData({
      'userInfo.avatar': this.data.defaultAvatar
    });
  },

  onShow() {
    // 页面显示时检查用户信息
    if (!this.data.userInfo.avatar) {
      this.setData({
        'userInfo.avatar': this.data.defaultAvatar
      });
    }
  }
});
